メイン コーダーズルーム【スクリプト系】
変数のスコープについて | 投稿するにはまず登録を |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | スレッド |
|---|---|
| 渡辺 隆彦 | Åê¹ÆNo.33639 投稿日時: 2007-6-8 4:26 |
半人前 ![]() ![]() 居住地: 東京 投稿: 33
使用環境:
Arc:MacMini(1.5G PowerPC G4) OS :MacOSX(10.4.8) Appli:Flash Professional 8 |
変数のスコープについて 変数のスコープについてお聞きします.
いままでなにげにfor文を書くときに以下のような変数iの宣言を行っていました。 function A(){ for (var i:Number =0; i < 10; i++) { // 1つ目 ............ 略 ........... } ............ 略 ........... for (var i:Number =0; i < 10; i++) { // 2つ目 ............ 略 ........... } } 自分としては2つ目のfor文では変数iが再定義されるのかと思っていたのですが、 この間デバッグをしていて、ローカルのタブにて、1つ目のfor文終了後にも、 iが残っている事に気がつきました。 そうすると、2つ目のfor文では変数iを宣言なしで、 for ( i =0; i < 10; i++) { // 2つ目 のように記述すべきなのでしょうか? それともコンパイル時にコンパイラが2つ目のiを認識して、使い回しを してくれているのでしょうか? どこでどう勘違いしていたのかお恥ずかしいのですが、よろしくお願いいたします. |
| 野中文雄 | Åê¹ÆNo.33640 投稿日時: 2007-6-8 5:50 |
ちょんまげら ![]() ![]() 居住地: 東京 投稿: 4247
使用環境:
CS4 .4.11 Vista Home Premium (SP1) |
Re: 変数のスコープについて ECMAScriptには、ブロックスコープがありません(JavaScript1.7では追加されているようです)。そのため、ひとつの関数内で、同名の変数を再度var宣言しても再定義にはなりません。
同じ変数を使い回す場合には、関数の冒頭で宣言しておくのが、誤解を防ぐためにはよさそうに思います。 引用: 渡辺 隆彦さんは書きました: |
| 渡辺 隆彦 | Åê¹ÆNo.33642 投稿日時: 2007-6-8 12:07 |
半人前 ![]() ![]() 居住地: 東京 投稿: 33
使用環境:
Arc:MacMini(1.5G PowerPC G4) OS :MacOSX(10.4.8) Appli:Flash Professional 8 |
Re: 変数のスコープについて 野中さんありがとうございます。
|
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
| 投稿するにはまず登録を | |



ログイン




CS4
.4.11
Vista Home Premium (SP1)

